// app.js
import localConfigs from './config'

App({
  onLaunch() { // 展示本地存储能力
    wx.getSystemInfo({
      success: e => {
        this.globalData.StatusBar = e.statusBarHeight;
        let custom = wx.getMenuButtonBoundingClientRect();
        this.globalData.Custom = custom;  
        this.globalData.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
      }
    })
  },

  globalData: {},

  // 获取配置
  // 调用getConfig方法，并传入key值时，函数内部会使用localConfigs[key]来查找这个key对应的配置项
  getConfig(key=""){
    // 如果没有配置
    if(key==="") return localConfigs
    // 如果不存在配置项
    if(!localConfigs[key]){
      console.warn(`${key} config is not exist!`)
      return undefined
    }
    // 配置是否区分环境
    // 检查 localConfigs[key]是否是一个对象，并确保它不是 null（在JS中,typeof null会返回 'object'）
    if(typeof localConfigs[key] === 'object' && typeof localConfigs[key] !== null){
      const env = this.getConfig("env")
      // 如果 localConfigs[key] 是一个对象，那么使用当前的 env 作为键来访问该对象的相应环境配置
      return localConfigs[key][env]
    }
    // 假如 localConfigs[key] 的内容是 {develop: 'http://localhost:3000', production: 'https://api.example.com'}
    // 如果 env 是 'develop'，那么这行代码将返回 'http://localhost:3000'
    return localConfigs[key]
  }
})
